<?php
class BaseAction extends Action
{
    private $_v = '1.0.0';

    public function _initialize()
    {
        $this->loadDefaultConfig();
    }

    /**
     * 获取当前版本号
     * @return string
     */
    public function getVersion()
    {
        return $this->_v;
    }


    /**
     * 加载默认参数
     * @author Ice <iceinto@mallog.com.cn>
     */
    public function loadDefaultConfig()
    {

    }

    /**
     * 获取缓存
     * @param string $name
     * @return mixed
     * @author Ice <iceinto@mallog.com.cn>
     */
    function getCache($name)
    {
        if (APP_DEBUG) {
            return false;
        } else {
            return S($name);
        }
    }

    /**
     * 设置缓存
     * @param string $name
     * @param mixed  $data
     * @param int $expire
     * @return mixed
     * @author Ice <iceinto@mallog.com.cn>
     */
    public function setCache($name, $data = null, $expire = null)
    {
        if (APP_DEBUG) {
            return false;
        } else {
            return S($name, $data, $expire);
        }
    }

    /**
     * 获取要获取的字段信息
     * @return string
     * @author Ice <iceinto@mallog.com.cn>
     */
    public function getFields()
    {
        $fields = $this->_get('fields'); //获取字段
        $fields = empty($fields) ? '*' : $fields;
        return $fields;
    }

    /**
     * 获取格式化信息
     * @return string
     */
    public function getFormat()
    {
        $format = $this->_get('format'); //获取输出格式
        $format = empty($format) ? 'json' : $format;
        return $format;
    }

    /**
     * s方式返回数据到客户端
     * @access protected
     * @param mixed $data 要返回的数据
     * @param String $type AJAX返回数据格式
     * @return void
     */
    protected function dataReturn($data, $info = '', $status = 1, $type = '')
    {
        $result = array();
        $result['status'] = $status;
        $result['info'] = $info;
        $result['data'] = $data;
        if (empty($type)) $type = $this->getFormat();
        if (strtoupper($type) == 'JSON') {
            // 返回JSON数据格式到客户端 包含状态信息
            header("Content-Type:text/html; charset=utf-8");
            exit(json_encode($result));
        } else if (strtoupper($type) == 'XML') {
            // 返回xml格式数据
            header("Content-Type:text/xml; charset=utf-8");
            exit(xml_encode($result, 'utf-8', 'mallog'));
        } else if (strtoupper($type) == 'EVAL') {
            // 返回可执行的js脚本
            header("Content-Type:text/html; charset=utf-8");
            exit($data);
        } else {
            // TODO 增加其它格式
        }
    }
}